package com.pb.metadata.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 字段管理
 * @author liaohaoyuan
 * @date 20210301
 */
@Mapper
@Repository
public interface FieldManagementMapper {

    /**
     * 查询字段分页数据
     * @param paramMap
     * @return
     */
    List<Map<String, Object>> select(Map<String, Object> paramMap);

    /**
     * 字段管理新建数据
     * @param paramMap
     * @return
     */
    Integer insert(Map<String, Object> paramMap);

    /**
     * 字段修改
     * @param paramMap
     * @return
     */
    Integer update(Map<String, Object> paramMap);

    /**
     * 序号最大值
     * @param paramMap
     * @return
     */
    Integer getParamColumnCount(Map<String, Object> paramMap);

    /**
     * 字段修改
     * @param paramMap
     * @return
     */
    Integer updateByParam(Map<String, Object> paramMap);

    /**
     * 获取数据库数据
     * @return
     */
    List<Map<String,Object>> getDatabaseUserList();

    /**
     * 获取字段类型码值
     * @return
     */
    List<Map<String,Object>> getColumnTypeList();

    /**
     * 获取字段用途码值
     * @return
     */
    List<Map<String,Object>> getColumnUseList();

    /**
     * 锁定标识
     * @return
     */
    List<Map<String,Object>> getRecordStsList();

    /**
     * 有效标识
     * @return
     */
    List<Map<String,Object>> getActiveFlagList();

    /**
     * 删除字段
     * @param list
     */
    void delete(List<String> list);

    /**
     * 启用停用字段
     * @param paramMap
     */
    void startOrStop(Map<String, Object> paramMap);

    /**
     * 锁定码表信息
     * @param map
     */
    void lockedDate(List<String> map);

    /**
     * 提交码表信息
     * @param map
     */
    void freeDate(List<String> map);

    /**
     * 批量导入字段
     * @param list
     */
    void addFieldManagement(List<Map<String,Object>> list);

    /**
     * 批量修改字段
     * @param list
     */
    void updateFieldManagement(List<Map<String,Object>> list);

    /**
     * 应用标识
     * @param paramMap
     * @return
     */
    //List<Map<String,Object>> getAppIdList(Map<String,Object> paramMap);

    /**
     *数据库应用
     * @return
     */
    List<Map<String,Object>> getDataUserList();

    /**
     *查询字段
     * @param paramMap
     * @return
     */
    List<Map<String,Object>> getDataSizeList(Map<String,Object> paramMap);

}
